"""
Set集合和list一样都是用来存储集合的，但是Set相对于List来说 无序不重复
这一点和java的List接口和Set接口的区别类似

"""
"""
Set数据类型-去重集合
    {元素,元素，元素}
    set(list)->list转为set->类似java里面的Set(ArrayList)
"""
# 新建一个Set
set_demo={1,1,2,3,4,2,1}
# 注意list数据类型是[1,3,2,4]
print(type(set_demo))
print(set_demo)
listToSet=set([1,1,2,3,4,5,1,2])
print(listToSet)

"""
set添加元素-add
    add不存在的时候会添加
    add当值存在，就不会变动，也不会报错
"""
set_demo=set(['张三','李四','王五'])
set_demo.add("赵六")
print(set_demo)
set_demo.add("王五")
print(set_demo)

"""
set多个元素-update-类似java的addAll方法
    update可以放入集合,也可传序列或者字典。使用字典时只会set字典数据的key
"""
hello=set('hello')# set 会把字符拆出来去重组成集合set技进去
set_demo.update(hello)
print(set_demo)

"""
删除元素-remove
    remove(元素)
"""
set_demo.remove("h")
print(set_demo)
"""
清空元素-clear
"""
set_demo.clear()
print(set_demo)

"""
集合的不重复使得set集合可以进行数学运算
 &-交集运算
 |-并集运算
 - -差集运算
"""
s = {1,2,3,4,5}
s2 = {3,4,5,6,7}
result = s & s2 # {3, 4, 5}
print(result)
result = s | s2 # {3, 4, 5}
print(result)
result = s - s2 # {3, 4, 5}
print(result)

"""
检查集合是否是另一个集合的子集
set(a)<=set(b) -集合a是集合b的子集
set(a)<set(b) -集合a是集合b的真子集
"""
a = {1,2,3}
b = {1,2,3,4,5}
res=a<=b
print(res)
res=a<b
print(res)